import request from './request';

/**
 * 获取用户列表（带分页和搜索）
 * @param {Object} params 包含关键词、页码和每页数量的对象
 * @returns {Promise}
 */
export function getUserList(params) {
  return request({
    url: '/user/list',
    method: 'get',
    params
  });
}

/**
 * 获取用户详情
 * @param {number} id 用户ID
 * @returns {Promise}
 */
export function getUserDetail(id) {
  return request({
    url: `/user/detail/${id}`,
    method: 'get'
  });
}

/**
 * 禁用/启用用户账号
 * @param {number} id 用户ID
 * @param {number} status 状态（0-禁用，1-启用）
 * @returns {Promise}
 */
export function updateUserStatus(id, status) {
  return request({
    url: '/user/status',
    method: 'post',
    data: {
      id,
      status
    }
  });
}

/**
 * 获取用户消费统计信息
 * @param {number} id 用户ID
 * @returns {Promise}
 */
export function getUserStats(id) {
  return request({
    url: `/user/stats/${id}`,
    method: 'get'
  });
}

/**
 * 获取用户订单历史
 * @param {number} id 用户ID
 * @param {Object} params 分页参数
 * @returns {Promise}
 */
export function getUserOrders(id, params) {
  return request({
    url: `/api/user/orders/${id}`,
    method: 'get',
    params
  });
}

/**
 * 获取附近商家列表
 * @param {Object} params 查询参数，包含经纬度、分类ID、关键词等
 * @returns {Promise}
 */
export function getNearbyShops(params) {
  return request({
    url: '/api/shop/nearby',
    method: 'get',
    params
  });
}

/**
 * 获取商家详情
 * @param {number} id 商家ID
 * @returns {Promise}
 */
export function getShopDetail(id) {
  return request({
    url: `/api/shop/${id}`,
    method: 'get'
  });
}

/**
 * 获取推荐商家
 * @returns {Promise}
 */
export function getRecommendedShops() {
  return request({
    url: '/api/shop/recommended',
    method: 'get'
  });
}

/**
 * 获取商家商品列表
 * @param {number} shopId 商家ID
 * @param {Object} params 其他查询参数（分类ID、关键词、页码等）
 * @returns {Promise}
 */
export function getShopProducts(shopId, params) {
  return request({
    url: `/api/shop/${shopId}/products`,
    method: 'get',
    params
  });
}

/**
 * 综合搜索（同时搜索餐厅和美食）
 * @param {Object} params 查询参数，包含keyword关键词、categoryId分类ID等
 * @returns {Promise}
 */
export function search(params) {
  return request({
    url: '/api/user/search/all',
    method: 'get',
    params
  });
}

/**
 * 搜索餐厅
 * @param {Object} params 查询参数，包含keyword关键词、categoryId分类ID等
 * @returns {Promise}
 */
export function searchMerchants(params) {
  return request({
    url: '/api/user/search/merchants',
    method: 'get',
    params
  });
}

/**
 * 搜索美食
 * @param {Object} params 查询参数，包含keyword关键词、categoryId分类ID等
 * @returns {Promise}
 */
export function searchProducts(params) {
  return request({
    url: '/api/user/search/products',
    method: 'get',
    params
  });
} 